/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.breeze.util;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *
 * @author huateng
 */
public class StringUtil {
    public static String getString(String str){
        return str.toUpperCase().charAt(0)+str.substring(1);
    }
    
    public static String getGetString(String str){
        return "get"+getString(str);
    }
    
    public static String getSetString(String str){
        return "set"+getString(str);
    }
    
    /**
     * a_bc_def ==> aBcDef
     * @param str
     * @return 
     */
    public static String getHumpString(String str){
        String[] ss=str.split("_");
        if(ss.length<=1)
            return str;
        StringBuilder sb=new StringBuilder();
        sb.append(ss[0]);
        for(int i=1;i<ss.length;i++){
            sb.append(getString(ss[i]));
        }
        return sb.toString();
    }
    
    public static String getHumpStringString(String str){
        return getString(getHumpString(str.toLowerCase()));
    }
    
    public static int[][] getMatchedIndex(String src,String reg){
        Pattern p=Pattern.compile(reg);
        Matcher m=p.matcher(src);
        List<Integer> startList=new ArrayList<Integer>();
        List<Integer> endList=new ArrayList<Integer>();
        while(m.find()){
            startList.add(m.start());
            endList.add(m.end());
//            System.out.println(m.start()+":"+m.end());
        }
        if(startList.size()<=0)
            return null;
        int[][] res=new int[startList.size()][2];
        for(int i=0;i<startList.size();i++){
            res[i][0]=startList.get(i);
            res[i][1]=endList.get(i);
        }
        return res;
    }
    
    public static void main(String[] args){
        getMatchedIndex("sdfsdf${dsdf}", "\\$\\{.*?\\}");
    }
}
